package com.qckj.amz.service;

import com.qckj.amz.domain.ProductTempDesc;
import com.qckj.common.core.domain.AjaxResult;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

/**
 * 产品描述信息Service接口
 *
 * @author luchuan
 * @since 1.0 2021-12-28
 */
public interface IProductTempDescService  {
    /**
     * 查询产品描述信息
     *
     * @param id 产品描述信息ID
     * @return 产品描述信息
     */
    ProductTempDesc findById(Long id);

    /**
     * 分页查询产品描述信息列表
     *
     * @param req 产品描述信息
     * @return 产品描述信息集合
     */
    Page<ProductTempDesc> findProductTempDescPage(ProductTempDesc req);

    /**
     * 查询产品描述信息列表
     *
     * @param req 产品描述信息
     * @return 产品描述信息集合
     */
    List<ProductTempDesc> findProductTempDescList(ProductTempDesc req);

    /**
     * 新增产品描述信息
     *
     * @param productTempDesc 产品描述信息
     * @return 结果
     */
    void save(ProductTempDesc productTempDesc);

    /**
     * 批量删除产品描述信息
     *
     * @param ids 需要删除的产品描述信息ID
     * @return 结果
     */
    void deleteByIds(List<Long> ids);

    /**
     * 删除产品描述信息信息
     *
     * @param id 产品描述信息ID
     * @return 结果
     */
    void deleteProductTempDescById(Long id);

    /**
     * 通过产品代码获取产品描述信息
     * @param productCode
     * @return
     */
    AjaxResult getListByProductCode(String productCode);

    /**
     * 新增或修改产品描述信息
     * @param descData
     * @return
     */
    AjaxResult addOrUpdateTempDesc(Map<String, Object> descData);

    /**
     * 通过productCode删除产品相关数据
     * @param productCodeList
     */
    void deleteByProductCodes(List<String> productCodeList);

    /**
     * 侵权词替换
     * @param productCodes
     * @return
     */
    AjaxResult infringingWordReplace(List<String> productCodes);

    /**
     * 产品翻译
     * @param productCodes          产品代码集合
     * @param translationToolType   翻译工具类型
     * @param countryFrom           源站点
     * @param countryCodes          译站点集合
     * @return
     */
    AjaxResult translate(List<String> productCodes, String translationToolType, String countryFrom, List<String> countryCodes);

    /**
     * 清空翻译（清空项不包含中文和英文）
     * @param productCodes
     * @return
     */
    AjaxResult clearTranslate(List<String> productCodes);

}
